In packet switching networks, data packets may be transmitted from one network component to another network component. Each data packet may include one or more packet headers, which contain routing information. The routing information may specify where the data packet is to be routed. Network Interface Controllers (NICs) via network switches use the routing information to deliver each packet to its destination in accordance with a network protocol (e.g., TCP/IP, BGP, DHCP). Most application specific integrated circuits (ASICs) in NICs recognize only a limited number of protocols and usually cannot be modified to accept newly-invented protocols. Thus, data packets with protocols that are unsupported by a NIC's ASIC are processed by NIC firmware at a much slower rate compared to the processing rate of the ASIC. This causes processing bottlenecks and under-utilization of network bandwidth.